Allows for searching and indexing a BibEntry object by fields, including
names and dates. The extraction operator and the SearchBib
function
simply provide different interfaces to the same search functionality.
# S3 method for BibEntry
[(x, i, j, ..., drop = FALSE)SearchBib(x, .opts = list(), ...)
an object of class BibEntry
A named list or character vector of search terms with names corresponding to the field to search for the search term. Alternatively, a vector of entry key values or numeric or logical indices specifying which entries to extract.
A named list or character vector, as i
. Entries matching the
search specified by i OR matching
the query specified by j
will be return
arguments in the form bib.field = search.term
, or as j
lists or character vectors for additional searches. For
SearchBib
, can alternatively have same form as i
.
logical, should attributes besides class be dropped from result?
list of search options with name = value
entries. Any option described
in BibOptions
is valid, with the following being the most relevant ones
use.regex
- logical; are the search terms regular expressions or should exact matching be used?
ignore.case
- logical; should case be ignored when comparing strings?
match.date
- how should the date fields date, urldate, eventdate, and origdate. Default is “year.only”, so
that months and days in dates are ignored when comparing. Currently, specifying any other value results the full date being
used. See the Note section.
match.author
- character string; how should name fields be searched? If “family.only”, only family names are
compared; if “family.with.initials”, family name and given name initials are used; if “exact”, full
names are used.
return.ind
- logical; if TRUE the returned object is numeric indices of match locations; otherwise, a BibEntry
object is returned
an object of class BibEntry (the results of the search/indexing),
or if BibOptions()$return.ind=TRUE
, the indices in x
that
match the search terms.
Other operators: $.BibEntry
,
$<-.BibEntry
, +.BibEntry
,
[<-.BibEntry
, [[.BibEntry
,
[[<-.BibEntry
, c.BibEntry
# NOT RUN {
file.name <- system.file("Bib", "biblatexExamples.bib", package="RefManageR")
bib <- suppressMessages(ReadBib(file.name))
## author search, default is to use family names only for matching
bib[author = "aristotle"]
## Aristotle references before 1925
bib[author="aristotle", date = "/1925"]
## Aristotle references before 1925 *OR* references with editor Westfahl
bib[list(author="aristotle", date = "/1925"),list(editor = "westfahl")]
## Change some searching and printing options and search for author
old.opts <- BibOptions(bib.style = "authoryear", match.author = "exact",
max.names = 99, first.inits = FALSE)
bib[author="Mart\u00edn, Jacinto and S\u00e1nchez, Alberto"]
BibOptions(old.opts) ## reset options
## Some works of Raymond J. Carroll's
file.name <- system.file("Bib", "RJC.bib", package="RefManageR")
bib <- ReadBib(file.name)
length(bib)
## index by key
bib[c("chen2013using", "carroll1978distributions")]
## Papers with someone with family name Wang
length(SearchBib(bib, author='Wang', .opts = list(match.author = "family")))
## Papers with Wang, N.
length(SearchBib(bib, author='Wang, N.', .opts = list(match.author = "family.with.initials")))
## tech reports with Ruppert
length(bib[author='ruppert',bibtype="report"])
##Carroll and Ruppert tech reports at UNC
length(bib[author='ruppert',bibtype="report",institution="north carolina"])
## Carroll and Ruppert papers since leaving UNC
length(SearchBib(bib, author='ruppert', date="1987-07/",
.opts = list(match.date = "exact")))
## Carroll and Ruppert papers NOT in the 1990's
# }
# NOT RUN {
length(SearchBib(bib, author='ruppert', date = "!1990/1999"))
identical(SearchBib(bib, author='ruppert', date = "!1990/1999"),
SearchBib(bib, author='ruppert', year = "!1990/1999"))
table(unlist(SearchBib(bib, author='ruppert', date="!1990/1999")$year))
## Carroll + Ruppert + Simpson
length(bib[author="Carroll, R. J. and Simpson, D. G. and Ruppert, D."])
## Carroll + Ruppert OR Carroll + Simpson
length(bib[author=c("Carroll, R. J. and Ruppert, D.", "Carroll, R. J. and Simpson, D. G.")])
## Carroll + Ruppert tech reports at UNC "OR" Carroll and Ruppert JASA papers
length(bib[list(author='ruppert',bibtype="report",institution="north carolina"),
list(author="ruppert",journal="journal of the american statistical association")])
# }
Run the code above in your browser using DataLab